// app.ts
import * as util from './utils/util.js';

interface GlobalData {
  userInfo: {
    nickname: string;
    userName: string;
    avatar: string;
    isAudit?: number | null; // 1-待审核 2-审核通过 3-审核拒绝
  };
  token: string;
  userCoupon: string;
  courseCouponCode: Record<string, any>;
}

interface AppOption extends IAppOption {
  globalData: GlobalData;
}

App<AppOption>({
  onLaunch(): void {
    // 获取小程序更新机制兼容
    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager();
      updateManager.onCheckForUpdate((res) => {
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          updateManager.onUpdateReady(() => {
            wx.showModal({
              title: '更新提示',
              content: '新版本已经准备好，是否重启应用？',
              success: (res) => {
                if (res.confirm) {
                  // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate();
                }
              }
            });
          });
          updateManager.onUpdateFailed(() => {
            // 新的版本下载失败
            wx.showModal({
              title: '已经有新版本了哟~',
              content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
            });
          });
        }
      });
    } else {
      // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低，无法更好体验程序，请升级到最新微信版本后重试。'
      });
    }
  },

  globalData: {
    userInfo: {
      nickname: 'Hi,游客',
      userName: '点击去登录',
      avatar: 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0',
      isAudit: null // 1-待审核 2-审核通过 3-审核拒绝
    },
    token: '',
    userCoupon: 'NO_USE_COUPON', // 默认不适用优惠券
    courseCouponCode: {}, // 购买课程的时候优惠券信息
  },

  // 下拉刷新
  onPullDownRefresh(): void {
    // 显示顶部刷新图标
    wx.showNavigationBarLoading();
    // 隐藏导航栏加载框
    wx.hideNavigationBarLoading();
    // 停止下拉动作
    wx.stopPullDownRefresh();
  },

  // 更新小程序
  updateManager(): void {
    // 获取系统信息 客户端基础库
    wx.getSystemInfo({
      success: (res) => {
        // 基础库版本比较，版本更新必须是1.9.90以上
        const v = util.compareVersion(res.SDKVersion, '1.9.90');
        if (v > 0) {
          const manager = wx.getUpdateManager();
          manager.onCheckForUpdate((res) => {
            // 请求完新版本信息的回调
            // console.log(res.hasUpdate);
          });
          manager.onUpdateReady(() => {
            wx.showModal({
              title: '更新提示',
              content: '新版本已经准备好，是否重启应用？',
              success: (res) => {
                if (res.confirm) {
                  // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                  manager.applyUpdate();
                }
              }
            });
          });
          manager.onUpdateFailed(() => {
            // 新的版本下载失败
          });
        } else {
          // wx.showModal({
          //   title: '温馨提示',
          //   content: '当前微信版本过低，无法更好体验程序，请升级到最新微信版本后重试。'
          // })
        }
      },
    });
  }
});
